home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr49
/
pgp23src.zip
/
ZTAILOR.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-09
|
4KB
|
169 lines
/* tailor.h -- Not copyrighted 1991 Mark Adler */
/* Use prototypes and ANSI libraries if __STDC__ */
#ifdef __STDC__
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif /* __STDC__ */
/* Use prototypes and ANSI libraries */
#if defined(sgi) || defined(mips)
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif /* sgi */
/* Define MSDOS for Turbo C as well as Microsoft C */
#ifdef __POWERC /* For Power C too */
# define __TURBOC__
#endif /* __POWERC */
/* Use prototypes and ANSI libraries if Microsoft or Borland C */
#ifdef MSDOS
# ifndef PROTO
# define PROTO
# endif /* !PROTO */
# define MODERN
#endif /* MSDOS */
/* Turn off prototypes if requested */
#ifdef NOPROTO
# ifdef PROTO
# undef PROTO
# endif /* PROTO */
#endif /* NOPROT */
/* Used to remove arguments in function prototypes for non-ANSI C */
#ifdef PROTO
# define OF(a) a
#else /* !PROTO */
# define OF(a) ()
#endif /* ?PROTO */
/* Allow far and huge allocation for small model (Microsoft C or Turbo C) */
/* unless NOFAR defined (needed for ANSI mode compilations) */
/* But if we're using DJGPP, and want to use the optimized 386 assembler */
/* zmatch routines, we can't use DYN_ALLOC. But gcc has virtual memory... */
#ifdef MSDOS
# ifndef __GNUC__
# ifndef DYN_ALLOC
# define DYN_ALLOC
# endif
# endif
# ifdef __TURBOC__
# include <alloc.h>
# define fcalloc calloc /* Assumes that all arrays are < 64K for MSDOS */
# else /* !__TURBOC__ */
# ifndef __GNUC__
# include <malloc.h>
# define farmalloc _fmalloc
# define farfree _ffree
# define fcalloc(nitems,itemsize) halloc((long)(nitems),(itemsize))
# endif /* __GNUC__ */
# endif /* ?__TURBOC__ */
# ifdef NOFAR
# define huge
# define far
# define near
# endif
#else /* !MSDOS */
# define huge
# define far
# define near
# define farmalloc malloc
# define farfree free
# define fcalloc calloc
#endif /* ?MSDOS */
#ifdef __GNUC__
# ifdef MSDOS /* MSDOS GNU C == DJGPP */
# define huge
# define far
# define near
# define farmalloc malloc
# define farfree free
# define fcalloc calloc
# endif /* MSDOS */
#endif /* __GNUC__ */
/* Define MSVMS if either MSDOS or VMS defined */
#ifdef MSDOS
# define MSVMS
#else /* !MSDOS */
# ifdef VMS
# define MSVMS
# endif /* VMS */
#endif /* ?MSDOS */
#include <stdio.h>
#include <stdlib.h>
typedef unsigned int extent;
/* Get types and stat */
#ifdef VMS
# include <types.h>
# include <stat.h>
#else /* !VMS */
# include <sys/types.h>
# include <sys/stat.h>
#endif /* ?VMS */
/* Cheap fix for unlink on VMS */
#ifdef VMS
# define unlink delete
#endif /* VMS */
/* For Pyramid */
#ifdef pyr
# define strrchr rindex
#endif /* pyr */
/* File operations--use "b" for binary if allowed */
#ifdef MODERN
# define FOPR "rb"
# define FOPM "r+b"
# define FOPW "w+b"
#else /* !MODERN */
# define FOPR "r"
# define FOPM "r+"
# define FOPW "w+"
#endif /* ?MODERN */
/* Define this symbol if your target allows access to unaligned data.
* This is not mandatory, just a speed optimization. The compressed
* output is strictly identical.
*/
#if defined(MSDOS) || defined(M_XENIX) || defined(i386) || defined(mc68020) || defined(vax)
# define UNALIGNED_OK
#endif
/* Under MSDOS we may run out of memory when processing a large number
* of files. Compile with MEDIUM_MEM to reduce the memory requirements or
* with MIN_MEM to use as little memory as possible.
*/
#ifdef SMALL_MEM
# define BSZ 2048 /* Buffer size for files */
#else
#ifdef MEDIUM_MEM
# define BSZ 8192
#else
# define BSZ 16384
#endif
#endif
/* end of tailor.h */